home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Hacks / Hacks ’96 / Talking Telnet / source / config / IC / IConfig.c < prev    next >
Text File  |  1996-06-22  |  2KB  |  84 lines

  1. /* IConfig.c */
  2.  
  3.  
  4. #include "IConfig.proto.h"
  5. #include "ICTypes.h"
  6. #include "ICAPI.h"
  7. #include "ICKeys.h"
  8.  
  9.  
  10. #define kICftpHelper "\pHelper•ftp"
  11. #define kIChttpHelper "\pHelper•http"
  12. #define kICgopherHelper "\pHelper•gopher"
  13. #define kICwaisHelper "\pHelper•wais"
  14. #define kICtelnetHelper "\pHelper•telnet"
  15. #define kICtn3270Helper "\pHelper•tn3270"
  16. #define kICfingerHelper "\pHelper•finger"
  17. #define kICwhoisHelper "\pHelper•whois"
  18.  
  19. ICInstance inst;
  20. Boolean gHaveIC;
  21.  
  22. char * gICHelperKeys[]  = {
  23.     NULL, /* kNotURL*/
  24.     (char *)"\pHelper•mailto",
  25.     (char *)"\pHelper•nntp",
  26.     (char *)"\pHelper•nntp",
  27.     (char *)"\pHelper•ftp",
  28.     (char *)"\pHelper•http",
  29.     (char *)"\pHelper•gopher",
  30.     (char *)"\pHelper•wais",
  31.     NULL, /* we handle telnet URL */
  32.     NULL, /* we handle rlogin URL */
  33.     (char *)"\pHelper•tn3270",
  34.     (char *)"\pHelper•finger",
  35.     (char *)"\pHelper•whois"
  36. };
  37.  
  38. void ICUnload(void) { }
  39. OSType GetHelperInfo(TURLKind urlKind)
  40. {
  41.     ConstStr255Param key;
  42.     ICError icErr;
  43.     ICAttr attr;
  44.     long size;
  45.     ICAppSpec icAppSpec;
  46.  
  47.     if (!gHaveIC)
  48.         return NULL;
  49.     
  50.     key = (unsigned char *)gICHelperKeys[urlKind];
  51.     if (key == NULL)
  52.         return NULL;
  53.         
  54.     size = sizeof(icAppSpec);
  55.     icErr = ICBegin(inst, icReadOnlyPerm); //we dont touch
  56.  
  57.     icErr |= ICGetPref(inst, key, &attr, (Ptr)&icAppSpec, &size);
  58.     
  59.     icErr |= ICEnd(inst);
  60.     if (icErr == noErr)
  61.         return (icAppSpec.fCreator);        
  62.     else
  63.         return (NULL);
  64. }
  65. void ICinit(void)
  66. {
  67.     ICError ICerr;
  68.     ICDirSpecArray folder_spec;
  69.     
  70.     ICerr = ICStart(&inst, 'NCSA');            /* tell it our creator */
  71.  
  72.     folder_spec[0].vRefNum = -1;            /* search for prefs in system */
  73.     folder_spec[0].dirID = 2;                        
  74.     ICerr = ICFindConfigFile(inst, 1, (ICDirSpecArrayPtr) &folder_spec);
  75.     gHaveIC = (ICerr == noErr);
  76. }
  77.  
  78. void stopInternetConfig(void)
  79. {
  80.     ICError ICerr;
  81.     if (gHaveIC)
  82.         ICerr = ICStop(inst);
  83. }
  84.